﻿#pragma warning disable 649    // disable compiler warnings about unassigned fields

namespace ModuleManagerService.Web
{
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.ComponentModel.DataAnnotations;
    using System.Data.Objects.DataClasses;
    using System.Linq;
    using System.Web.DomainServices;
    using System.Web.Ria;
    using System.Web.Ria.Services;


    // The MetadataTypeAttribute identifies InitializationModeMetadata as the class
    // that carries additional metadata for the InitializationMode class.
    [MetadataTypeAttribute(typeof(InitializationMode.InitializationModeMetadata))]
    public partial class InitializationMode
    {

        // This class allows you to attach custom attributes to properties
        // of the InitializationMode class.
        //
        // For example, the following marks the Xyz property as a
        // required field and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz;
        internal sealed class InitializationModeMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private InitializationModeMetadata()
            {
            }

            public int ID;

            public Module Modules;

            public string Name;
        }
    }

    // The MetadataTypeAttribute identifies ModuleMetadata as the class
    // that carries additional metadata for the Module class.
    [MetadataTypeAttribute(typeof(Module.ModuleMetadata))]
    public partial class Module
    {

        // This class allows you to attach custom attributes to properties
        // of the Module class.
        //
        // For example, the following marks the Xyz property as a
        // required field and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz;
        internal sealed class ModuleMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private ModuleMetadata()
            {
            }

            public string CategoryName;

            public EntityCollection<Module> DependedOnBy;

            public EntityCollection<Module> DependsOn;

            public int ID;
            [Include]
            public InitializationMode InitializationMode;

            public string Name;

            public string Path;

            public string Roles;

            public string Type;
        }
    }
}

#pragma warning restore 649    // re-enable compiler warnings about unassigned fields
